#include "common/pch.h"
#include "metadata/creaturedata.h"

#include <format>

#include <cftf/loger/syslog.h>
#include <cftc/reflect/class.h>
#include <cftc/reflect/field.h>

#include "dbc/structure.h"
#include "metadata/creatureinfo.h"
#include "metadata/equipment_info.h"
#include "metadata/gameobjectdata.h"
#include "object/creature.h"
#include "object/objectmgr.h"

namespace mt
{

	CFT_IMPLEMENT_REFLECT_CLASS_ANNOTATION_BEGIN(GameObjectData, cftc::reflect::Object, R"(wow_meta:"custom_loader_sql:mt.sql_template.GameObjectData_Loader")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(guid, R"(wow_meta:"field_name:guid")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(id, R"(wow_meta:"field_name:id")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(mapid, R"(wow_meta:"field_name:map")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(posX, R"(wow_meta:"field_name:position_x")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(posY, R"(wow_meta:"field_name:position_y")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(posZ, R"(wow_meta:"field_name:position_z")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(orientation, R"(wow_meta:"field_name:orientation")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(rotation0, R"(wow_meta:"field_name:rotation0")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(rotation1, R"(wow_meta:"field_name:rotation1")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(rotation2, R"(wow_meta:"field_name:rotation2")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(rotation3, R"(wow_meta:"field_name:rotation3")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(spawntimesecs, R"(wow_meta:"field_name:spawntimesecs")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(animprogress, R"(wow_meta:"field_name:animprogress")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(go_state, R"(wow_meta:"field_name:state")");

		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(gameEvent, R"(wow_meta:"field_name:event")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(GuidPoolId, R"(wow_meta:"field_name:GuidPoolId")");
		CFT_IMPLEMENT_REFLECT_FIELD_ANNOTATION(EntryPoolId, R"(wow_meta:"field_name:EntryPoolId")");
	CFT_IMPLEMENT_REFLECT_CLASS_END();

}